package cn.th.entity;

import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableLogic;
import lombok.Data;

import java.io.Serializable;
import java.time.LocalDateTime;

/**
 * <p>
 * 任务表
 * </p>
 *
 * @author cn.th
 * @since 2024-04-03
 */
@Data
public class Task implements Serializable {

    private static final long serialVersionUID = 1L;

      /**
     * 任务表id
     */
        private Long id;

      /**
     * 任务名字
     */
        private String name;
      /**
     * 发布任务的学院名字
     */
      private String school;

      /**
     * 发布人/发布单位
     */
      private String publishName;

      /**
     * 发布时间
     */
      private LocalDateTime time;

      /**
     * 发布地点
     */
      private String publishLocation;

      /**
     * 任务内容（不超过500字）
     */
      private String taskContent;

      /**
     * 任务封面
     */
      private String image;

      /**
     * 任务状态 0：草稿 1：已发布未审核 2：审核未通过 3：审核通过还未开始 4：正在进行中 5：已结束 6：已完结
     */
      private Integer status;

      /**
     * 积分设置
     */
      private Float points;

      /**
     * 任务开始时间
     */
      private LocalDateTime startTime;

      /**
     * 任务结束时间
     */
      private LocalDateTime endTime;

      /**
     * 面向的对象（年级）
     */
      private String grade;

      /**
     * 活动标签（最大长度为10）
     */
      private String label;

      /**
     * 任务地点
     */
      private String taskLocation;

      /**
       * 主线任务 1，支线任务 0 默认为0
       */
      private int importance;

      /**
       * 创建时间
       */
      @TableField(fill = FieldFill.INSERT)
      private LocalDateTime createTime;

      /**
       * 更新时间
       */
      @TableField(fill = FieldFill.INSERT_UPDATE)
      private LocalDateTime updateTime;

      /**
       * 创建人id
       */
      @TableField(fill = FieldFill.INSERT)
      private Long createUser;

      /**
       * 更新人id
       */
      @TableField(fill = FieldFill.INSERT_UPDATE)
      private Long updateUser;

      // 是否删除
      private Integer deleted;

}
